﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAL;
public partial class master_Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ModContabilidad cont = new ModContabilidad();
            List<Tbl_TiposActivosFijos> listRubro = cont.getAllTiposActivo();
            Tbl_TiposActivosFijos tipoVacio = new Tbl_TiposActivosFijos();
            tipoVacio.iTipoActivo_id = 0;
            tipoVacio.sCodigoActivoFijo = "-Rubro-";
            listRubro.Insert(0, tipoVacio);
            comboRubros.DataSource = listRubro;
            comboRubros.DataTextField = "sCodigoActivoFijo";
            comboRubros.DataValueField = "iTipoActivo_id";
            comboRubros.DataBind();
            int pAnho = cont.getPrimerAno();
            int firstYear = (pAnho > 0) ? pAnho : DateTime.Today.Year;
            comboYear.DataSource = comboRange(firstYear);
            comboYear.DataValueField = "Year";
            comboYear.DataTextField = "StrYear";
            comboYear.DataBind();
        }
    }

    private List<YearCombo> comboRange(int initYear)
    {
        List<YearCombo> lstYear = new List<YearCombo>();
        DateTime dt = DateTime.Today;
        int currentYear = dt.Year;
        YearCombo year = new YearCombo();
        lstYear.Add(year);
        for (int i = initYear; i <= currentYear; i++)
        {
            lstYear.Add(new YearCombo(i));
        }
        return lstYear;
    }

    public class YearCombo
    {
        private int year;

        public int Year
        {
            get { return year; }
            set { year = value; }
        }
        private string strYear;

        public string StrYear
        {
            get { return strYear; }
            set { strYear = value; }
        }

        public YearCombo(int y)
        {
            this.year = y;
            this.strYear = this.year + "";
        }

        public YearCombo()
        {
            this.year = 0;
            this.strYear = "-Año-";
        }
    }

    protected void comboRubros_SelectedIndexChanged(object sender, EventArgs e)
    {
        string rubro = comboRubros.SelectedValue;
        if (rubro != "0")
        {
            ModContabilidad mod = new ModContabilidad();
            Tbl_TiposActivosFijos tipo = mod.getTipo(Convert.ToInt32(rubro));
            if (tipo != null)
            {
                rubro_desc.InnerHtml = tipo.sTipoActivo;
            }
        }
        else
        {
            rubro_desc.InnerHtml = "";
        }
    }

    protected string formatDate(Object dt)
    {
        DateTime date = (DateTime)dt;

        return (date != null) ? date.ToString("dd/MM/yyyy") : "null";
    }

    protected string getCodigo(string cod)
    {
        ModContabilidad cont = new ModContabilidad();
        Tbl_ActivoFijos activo = cont.getActivoporID(Convert.ToInt32(cod));
        return (activo != null) ? activo.sCodigoActivoFijo : "null";
    }

    protected void btnSearch_Click(object sender, EventArgs e)
    {
        string rubro = comboRubros.SelectedValue;
        string month = comboMonth.SelectedValue;
        string year = comboYear.SelectedValue;
        if (rubro != "0" && month != "0" && year != "0")
        {
            List<Tbl_HistorialDepreciacion> lista = new List<Tbl_HistorialDepreciacion>();
            ModContabilidad cont = new ModContabilidad();
            string sfecha = month + "/01/" + year;
            lista = cont.getHistorialDepreByRubroyFecha(Convert.ToInt32(rubro), sfecha);
            List<Decimal> listTotal = cont.getTotalDeprecbyRubroyFecha(Convert.ToInt32(rubro), sfecha);
            if (lista != null && listTotal != null)
            {
                grv_ActivoFijo.DataSource = lista;
                grv_ActivoFijo.DataSourceID = "";
                grv_ActivoFijo.DataBind();
                depGestion.InnerHtml = listTotal[0] + "";
                depAcumulada.InnerHtml = listTotal[1] + "";
                depTotal.InnerHtml = listTotal[2] + "";
            }
        }
    }
    protected void grv_ActivoFijo_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        string rubro = comboRubros.SelectedValue;
        string month = comboMonth.SelectedValue;
        string year = comboMonth.SelectedValue;
        if (rubro != "0" && month != "0" && year != "0")
        {
            List<Tbl_HistorialDepreciacion> lista = new List<Tbl_HistorialDepreciacion>();
            ModContabilidad cont = new ModContabilidad();
            string sfecha = month + "/01/" + year;
            lista = cont.getHistorialDepreByRubroyFecha(Convert.ToInt32(rubro), sfecha);
            if (lista != null)
            {
                grv_ActivoFijo.DataSource = lista;
                grv_ActivoFijo.DataSourceID = "";
                grv_ActivoFijo.PageIndex = e.NewPageIndex;
                grv_ActivoFijo.DataBind();
            }
            //lista = cont.getHistorialMovByRubroyFecha(Convert.ToInt32(rubro), );
        }
        else
        {
            grv_ActivoFijo.DataSource = null;
            grv_ActivoFijo.DataSourceID = "LinqDataSource1";
            grv_ActivoFijo.PageIndex = e.NewPageIndex;
            grv_ActivoFijo.DataBind();
        }
    }
}